package org.qualigraf.fr.kadmin.modele.session;

import java.io.Serializable;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.PersistenceContext;

import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Factory;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.annotations.datamodel.DataModelSelection;
import org.qualigraf.fr.kadmin.modele.entity.Maisons;

@Name("maisonmanager")
@Stateless
@Scope(ScopeType.PAGE)
@Local
public class MaisonEJB implements MaisonEJBLocalIF,Serializable{
	
    @PersistenceContext
    private EntityManager em;
    
    @DataModel
    List<Maisons> maisonsList;
    
    @DataModelSelection("maisonsList")
    @Out(required=false)
    private Maisons maison;

    public MaisonEJB() {
    }

    public void mergeMaison() {
    	em.merge(maison);   
    	queryMaisonsFindAll();
    }

    public void persistMaison() {
    	if (maison != null){
    		em.persist(maison); 
    		queryMaisonsFindAll();
    	}
    }

    /** <code>select o from Maisons o</code> */
    @Factory("maisonsList")
    public void queryMaisonsFindAll() {
    	maisonsList=em.createNamedQuery("Maisons.findAll").getResultList();      
    }

   public void removeMaison() { 
	   if (maison != null){
		   EntityTransaction tx=em.getTransaction();
		        em.remove(maison);
		        maisonsList.remove(maison);
		        maison=null;
	        tx.commit();	        
	        queryMaisonsFindAll();	        
	   }
    }
    
    @Remove
    public void destroy() {}

    
    
}
